home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / pwdb / radius.h < prev   
C/C++ Source or Header  |  2005-10-13  |  6KB  |  244 lines

  1. /*
  2.  *
  3.  *    RADIUS
  4.  *    Remote Authentication Dial In User Service
  5.  *
  6.  *
  7.  *    Livingston Enterprises, Inc.
  8.  *    6920 Koll Center Parkway
  9.  *    Pleasanton, CA   94566
  10.  *
  11.  *    Copyright 1992-1996 Livingston Enterprises, Inc. All Rights Reserved.
  12.  *
  13.  *    This software source code is provided under license from
  14.  *    Livingston Enterprises, Inc., the terms and conditions of which
  15.  *    are set forth in an End User Agreement that is contained in
  16.  *    both the product packaging, and electronically on the
  17.  *    Livingston ftp site. This software may only be used in
  18.  *    conjunction with Livingston (or Livingston authorized)
  19.  *    products.  Livingston makes no warranties to any licensee
  20.  *    concerning the applicability of the software to licensee's
  21.  *    specific requirements or the suitability of the software for
  22.  *    any intended use. Licensee shall not remove, modify or alter
  23.  *    any copyright and/or other proprietary rights notice and must
  24.  *    faithfully reproduce all such notices on any copies or
  25.  *    modifications to this software that it makes.
  26.  *    
  27.  *    Livingston Enterprises, Inc. makes no representations about
  28.  *    the suitability of this software for any purpose.  It is
  29.  *    provided "as is" without express or implied warranty.
  30.  *
  31.  */
  32.  
  33. /*
  34.  *    @(#)radius.h    1.15 10/30/96 
  35.  */
  36. #ifndef RADIUS_H
  37. #define RADIUS_H
  38. #define PASSCHANGE    /* comment this out to turn off radpass */
  39.  
  40. #define AUTH_VECTOR_LEN        16
  41. #define AUTH_PASS_LEN        16
  42. #define AUTH_STRING_LEN        128    /* maximum of 254 */
  43.  
  44. #ifndef UINT4
  45. typedef unsigned long UINT4;
  46. #endif
  47.  
  48. typedef struct pw_auth_hdr {
  49.     u_char        code;
  50.     u_char        id;
  51.     u_short        length;
  52.     u_char        vector[AUTH_VECTOR_LEN];
  53.     u_char        data[2];
  54. } AUTH_HDR;
  55.  
  56. #define AUTH_HDR_LEN            20
  57. #define CHAP_VALUE_LENGTH        16
  58.  
  59. #define PW_AUTH_UDP_PORT        1645
  60. #define PW_ACCT_UDP_PORT        1646
  61.  
  62. #define PW_TYPE_STRING            0
  63. #define PW_TYPE_INTEGER            1
  64. #define PW_TYPE_IPADDR            2
  65. #define PW_TYPE_DATE            3
  66.  
  67.  
  68. #define    PW_AUTHENTICATION_REQUEST    1
  69. #define    PW_AUTHENTICATION_ACK        2
  70. #define    PW_AUTHENTICATION_REJECT    3
  71. #define    PW_ACCOUNTING_REQUEST        4
  72. #define    PW_ACCOUNTING_RESPONSE        5
  73. #ifdef PASSCHANGE
  74. #define PW_PASSWORD_REQUEST        7
  75. #define PW_PASSWORD_ACK            8
  76. #define PW_PASSWORD_REJECT        9
  77. #endif /* PASSCHANGE */
  78. #define PW_ACCESS_CHALLENGE        11
  79.  
  80. #define    PW_USER_NAME            1
  81. #define    PW_PASSWORD            2
  82. #define    PW_CHAP_PASSWORD        3
  83. #define    PW_CLIENT_ID            4
  84. #define    PW_CLIENT_PORT_ID        5
  85. #define    PW_USER_SERVICE_TYPE        6
  86. #define    PW_FRAMED_PROTOCOL        7
  87. #define    PW_FRAMED_ADDRESS        8
  88. #define    PW_FRAMED_NETMASK        9
  89. #define    PW_FRAMED_ROUTING        10
  90. #define    PW_FRAMED_FILTER_ID        11
  91. #define    PW_FRAMED_MTU            12
  92. #define    PW_FRAMED_COMPRESSION        13
  93. #define    PW_LOGIN_HOST            14
  94. #define    PW_LOGIN_SERVICE        15
  95. #define    PW_LOGIN_TCP_PORT        16
  96. #ifdef PASSCHANGE
  97. #define PW_OLD_PASSWORD            17
  98. #endif
  99. #define PW_PORT_MESSAGE            18
  100. #define PW_DIALBACK_NO            19
  101. #define PW_DIALBACK_NAME        20
  102. #define PW_FRAMED_ROUTE            22
  103. #define PW_FRAMED_IPXNET        23
  104. #define PW_STATE            24
  105. #define PW_TERMINATION            29
  106.  
  107. #define PW_ACCT_STATUS_TYPE        40
  108. #define PW_ACCT_DELAY_TIME        41
  109. #define PW_ACCT_INPUT_OCTETS        42
  110. #define PW_ACCT_OUTPUT_OCTETS        43
  111. #define PW_ACCT_SESSION_ID        44
  112. #define PW_ACCT_AUTHENTIC        45
  113. #define PW_ACCT_SESSION_TIME        46
  114.  
  115. /*
  116.  * Non-Protocol Attributes
  117.  */
  118. #define PW_EXPIRATION              21
  119. #define PW_AUTHTYPE            1000
  120. #define PW_MENU                1001
  121. #define PW_TERMINATION_MENU        1002
  122. #define PW_PREFIX            1003
  123. #define PW_SUFFIX            1004
  124.  
  125.  
  126. /*
  127.  *    INTEGER TRANSLATIONS
  128.  */
  129.  
  130. /*    USER TYPES    */
  131.  
  132. #define    PW_LOGIN_USER            1
  133. #define    PW_FRAMED_USER            2
  134. #define    PW_DIALBACK_LOGIN_USER        3
  135. #define    PW_DIALBACK_FRAMED_USER        4
  136.  
  137. /*    FRAMED PROTOCOLS    */
  138.  
  139. #define    PW_PPP                1
  140. #define    PW_SLIP                2
  141.  
  142. /*    FRAMED ROUTING VALUES    */
  143.  
  144. #define    PW_NONE                0
  145. #define    PW_BROADCAST            1
  146. #define    PW_LISTEN            2
  147. #define    PW_BROADCAST_LISTEN        3
  148.  
  149. /*    FRAMED COMPRESSION TYPES    */
  150.  
  151. #define    PW_VAN_JACOBSON_TCP_IP        1
  152.  
  153. /*    LOGIN SERVICES    */
  154.  
  155. #define    PW_TELNET            0
  156. #define    PW_RLOGIN            1
  157. #define    PW_TCP_CLEAR            2
  158. #define    PW_PORTMASTER            3
  159.  
  160. /*    AUTHENTICATION LEVEL    */
  161.  
  162. #define PW_AUTH_NONE            0
  163. #define PW_AUTH_RADIUS            1
  164. #define PW_AUTH_LOCAL            2
  165.  
  166. /*    STATUS TYPES    */
  167.  
  168. #define PW_STATUS_START            1
  169. #define PW_STATUS_STOP            2
  170.  
  171. /*    TERMINATION OPTIONS    */
  172.  
  173. #define PW_TERM_DEFAULT            0
  174. #define PW_TERM_RADIUS_REQUEST        1
  175.  
  176. /*    Internal Authentication Types    */
  177.  
  178. #define PW_AUTHTYPE_LOCAL        0
  179. #define PW_AUTHTYPE_UNIX        1
  180. #define PW_AUTHTYPE_SECURID        2
  181.  
  182. /* Default Database File Names */
  183.  
  184. #define RADIUS_DIR        "/etc/raddb"
  185. #define RADACCT_DIR        "/usr/adm/radacct"
  186.  
  187. #define RADIUS_DICTIONARY    "dictionary"
  188. #define RADIUS_CLIENTS        "clients"
  189. #define RADIUS_CLIENT_CACHE    "clcache"
  190. #define RADIUS_USERS        "users"
  191. #define RADIUS_HOLD        "holdusers"
  192. #define RADIUS_SRV        "server"
  193.  
  194. /* Server data structures */
  195.  
  196. typedef struct dict_attr {
  197.     char            name[32];
  198.     int            value;
  199.     int            type;
  200.     struct dict_attr    *next;
  201. } DICT_ATTR;
  202.  
  203. typedef struct dict_value {
  204.     char            attrname[32];
  205.     char            name[32];
  206.     int            value;
  207.     struct dict_value    *next;
  208. } DICT_VALUE;
  209.  
  210. typedef struct value_pair {
  211.     char            name[32];
  212.     int            attribute;
  213.     int            type;
  214.     UINT4            lvalue;
  215.     char            strvalue[AUTH_STRING_LEN];
  216.     struct value_pair    *next;
  217. } VALUE_PAIR;
  218.  
  219. typedef struct auth_req {
  220.     UINT4            ipaddr;
  221.     u_short            udp_port;
  222.     u_char            id;
  223.     u_char            code;
  224.     u_char            vector[16];
  225.     u_char            secret[16];
  226.     VALUE_PAIR        *request;
  227.     int            child_pid;    /* Process ID of child */
  228.     UINT4            timestamp;
  229.     struct auth_req        *next;        /* Next active request */
  230. } AUTH_REQ;
  231.  
  232. #define SECONDS_PER_DAY        86400
  233. #define CLEANUP_DELAY        5
  234. #define MAX_REQUESTS        100
  235. #if defined(SECURID)
  236. #define MAX_REQUEST_TIME    120
  237. #else 
  238. #define MAX_REQUEST_TIME    30
  239. #endif
  240.  
  241. #define RADIUS_MSG_KEY(pid)    (('r' << 24) + ((pid) & 0x00ffffff))
  242.  
  243. #endif /* RADIUS_H */
  244.